home *** CD-ROM | disk | FTP | other *** search
- #include "bbs.h"
- #include <clib/intuition_protos.h>
- int CallMsgFuncs(WORD which,int pass);
- int RelNum=0;
- void ScanHoldDesc(void);
- extern struct myst my_struct; /* temp */
- /******* Fix so user only sees the Bulletins once *******/
- int BatchError;
- int CommentToSYSOP(void);
- int IsFromConf(int Conf,char *c);
- int GetFromConf(int Conf,char *c,char *buf);
- int IntFromConf(int Conf,char *c);
- int ALL;
- char NetConf[30];
- extern char prototitle[];
- void FileStatus(int opt);
- extern int NotRelative;
- char TEMPMENU_Li[255];
- BYTE Didsomething;
- int GetInverse(int CN);
- int RelConf(int CN);
- static int JEZoom(void);
- int PagesAllowed;
- extern int relogon;
- extern int templogon;
- static BOOL no_scrn_clr = FALSE;
- int Join_Conference(int cn)
- {
- char string[200];
- int mystat,TCN,ch;
- long temp;
- if(!cn) {
- if(strlen(MAINMENU_Li)>1) {
- strcat(MAINMENU_Li," -1 ");
- sscanf(MAINMENU_Li,"%s %d",&string,&TCN);
- TCN=GetInverse(TCN);
-
- if(TCN<1||TCN>Boards_Are_Active) goto CNTJoin;
-
- goto JOINit;
- }
- CNTJoin:
- sprintf(GSTR1,"%sJoinConf",Sopt->NodeScreen);
- if(!(mystat=ChecktoDisplay(GSTR1,GSTR2,1,0)))
- UnAvailNotice(GSTR2,GSTR1);
-
- AEPutStr("Conference Number: "); GetConfName(Conference_Name,Conference_Location,CN-1);
-
- mystat=LineInput("",string,8,KEYBOARD_TIMEOUT);
- if(mystat<0) return(NO_CARRIER);
- if(strlen(string)==0) { AEPutStr("\r\n");
- return(SUCCESS); }
-
- sscanf(string,"%d",&TCN);
- TCN=GetInverse(TCN);
- if(TCN<1||TCN>Boards_Are_Active) { GetConfName(Conference_Name,Conference_Location,CN-1);
-
- AEPutStr("\r\nNot a valid conference number\r\n\r\n");
- return(SUCCESS);
- }
- } else TCN=cn;
-
- JOINit:
- if(!IsValidConf(TCN-1)||TCN>Boards_Are_Active) {
- TCN=CN;
- if(!cn)
- AEPutStr("\r\nYou do not have access to requested conference\r\n\r\n");
- return(SUCCESS);
- }
- GetConfName(Conference_Name,Conference_Location,TCN-1);
- if(Conference_Location[0]=='\0')
- {
- CallersLog("\t****Conference Location unknown in MENU routines****\n");
- sprintf(GSTR1,"\t**** For Conference %d\n",TCN);
- CallersLog(GSTR1);
- }
- RelNum=RelConf(TCN);
- if(!cn) {
- sprintf(string,"\t%s (%d) Conference Joined\n",Conference_Name,RelNum);
- CallersLog(string);
- }
-
- if(!cn)
- sprintf(string,"\r\nJoining Conference: %s\r\n",Conference_Name);
- else
- sprintf(string,"Scanning Conference: %-23.23s ",Conference_Name);
-
-
- AEPutStr(string);
-
- if(!GetFromConf(TCN-1,"CONF_NETID",NetConf)) strcpy(NetConf,"");
- if(!cn)
- {
- if(strlen(NetConf)>3)
- {
- if(NetConf[0]=='H' || NetConf[0]=='h')
- sprintf(string,"NetNode: %s , Host to NetConf: %s\r\n",Sopt->BBSConfig,&NetConf[3]);
- else
- sprintf(string,"NetNode: %s , Sub to NetConf: %s\r\n",Sopt->BBSConfig,&NetConf[3]);
- AEPutStr(string);
- }
- }
- if(!cn) AEPutStr("\r\n");
- CN=TCN;
- if(!cn) User.ConfRJoin=CN;
-
- LoadMsgPointers(CN);
-
- mystat=GetMailStatFile();
- if(mystat==FAILURE) return(FAILURE);
- if(Last_Msg_Read_Conf<MailStat.LowestNotDel) Last_Msg_Read_Conf=MailStat.LowestNotDel;
- if(Last_New_Read_Conf<MailStat.LowestNotDel) Last_New_Read_Conf=MailStat.LowestNotDel;
- FreeDownloads=1;
-
- strcpy(GSTR1,Conference_Location);
- if(MaxDirs=IntFromConf(TCN-1,"NDIRS")) {
- if(IsFromConf(TCN-1,"FREEDOWNLOADS")) {
- FreeDownloads=0;
- } else
- FreeDownloads=1;
-
- }
-
- if(!GetFromConf(TCN-1,"SCREENS",Screen_Location))
- strcpy(Screen_Location,Conference_Location);
- if(!cn)
- {
- strcpy(GSTR1,Screen_Location);
- strcat(GSTR1,"BULL");
- if(ch=ChecktoDisplay(GSTR1,GSTR2,1,1)) {
- ch=DoPause();
- if(ch<0) return(ch);
- AEPutStr("\r\n");
-
- }
- if(BatchError<0) return(BatchError);
- }
- if(Last_Msg_Read_Conf>MailStat.HighMsgNum)
- Last_Msg_Read_Conf=0;
-
- if(Last_New_Read_Conf>MailStat.HighMsgNum)
- Last_New_Read_Conf=0;
-
- if(!cn) {
- if(MailStat.LowestKey>1)
- {
- sprintf(string,"Messages range from ( %ld - %ld )\r\n",
- MailStat.LowestKey,MailStat.HighMsgNum-1);
- }else
- sprintf(string,"\r\nTotal messages : %ld\r\n",MailStat.HighMsgNum-1);
- AEPutStr(string);
-
- temp=Last_New_Read_Conf-1;
- if(temp<0) temp=1;
-
- sprintf(string,"\r\nLast message auto scanned: %ld\r\n",temp);
- AEPutStr(string);
-
- sprintf(string,"Last message read : %ld\r\n\r\n",Last_Msg_Read_Conf);
- AEPutStr(string);
-
-
- }
- mystat=CallMsgFuncs(3,cn);
- SaveMsgPointers(CN);
- return(mystat);
- }
-
- static void DisMenu(void)
- {
- int stat;
-
- if(no_scrn_clr == FALSE) /* dont do screen clear code */
- if(User_keys.Userflags & USER_SCRNCLR) AEPutStr("\f"); // (RTS) Screen CLEAR
- sprintf(GSTR1,"%sMenu",Screen_Location);
-
- if(!(stat=ChecktoDisplay(GSTR1,GSTR2,1,0)))
- UnAvailNotice(GSTR2,GSTR1);
- no_scrn_clr = FALSE; /* dont do screen clear code */
- }
-
-
- static void UserStatus(void)
- {
- long TimeVar;
- char string[100],c[100], temp[100];
-
- TimeVar=Time_Last_On;
- sprintf(string,"%s",ctime(&TimeVar));
- Convert_CTime_To_Date(string,c,temp);
-
- /** Display Users Stat's **/
-
- AEPutStr("\r\n");
-
- if(NotRelative)
- {
- sprintf(string,"Area Name : %s\r\n",User.Conference_Access);
- AEPutStr(string);
- }
- sprintf(string,"Caller Num.: %u\r\n",System_Calls);
- AEPutStr(string);
- sprintf(string,"Lst Date On: %s\r\n",c);
- AEPutStr(string);
- sprintf(string,"Security Lv: %d\r\n",User.Sec_Status);
- AEPutStr(string);
-
- sprintf(string,"# Times On : %u\r\n",User.Times_Called);
- AEPutStr(string);
-
- //(RTS) Thu Apr 30 18:18:13 1992
- sprintf(string,"Online Baud: %ld\r\n",Online_Baud);
- AEPutStr(string);
- // (RTS) Fri Mar 27 13:41:27 1992
- if(User_keys.UPcps > 6000)
- strcpy(string,"Rate CPS UP: 0\r\n");
- else
- sprintf(string,"Rate CPS UP: %d\r\n",User_keys.UPcps);
- AEPutStr(string);
-
- if(User_keys.DNcps > 6000)
- strcpy(string,"Rate CPS DN: 0\r\n");
- else
- sprintf(string,"Rate CPS DN: %d\r\n",User_keys.DNcps);
- AEPutStr(string);
-
- /*(RTS)** User FLags ****/
- if(User_keys.Userflags & USER_SCRNCLR)
- strcpy(string,"Screen Clr: YES\r\n");
- else
- strcpy(string,"Screen Clr: NO\r\n");
-
- AEPutStr(string);
- sprintf(string,"Protocol : %s\r\n",prototitle);
- AEPutStr(string);
- if(PagesAllowed!=-1)
- {
- sprintf(string,"Sysop Pages Remaining: %d\r\n",PagesAllowed);
- AEPutStr(string);
- }
- AEPutStr("\r\n");
-
- FileStatus(1);
- }
- void FileStatus(int opt)
- {
- int valid=0;
- int j=0,i,s;char string[200];
- int k,t=0;
- if(!opt) s=Boards_Are_Active;
- else s=CN;
- if(GET_BIT(ACS_CONFERENCE_ACCOUNTING)) t=1;
- AEPutStr("\r\n");
- sprintf(string," Uploads Downloads\r\n");
- AEPutStr(string);
- sprintf(string," Conf Files Bytes Files Bytes Bytes Avail Ratio\r\n");
- AEPutStr(string);
- AEPutStr(" ---- ------- --------- ------- --------- ----------- -----\r\n");
- SaveMsgPointers(CN);
- for(i=0;i<s;i++)
- {
- if(IsValidConf(i)) { j++; valid=TRUE; } else valid=FALSE;
- if(!opt || i==CN-1)
- {
- if(valid)
- {
- if(!t) k=i+1; else k=j;
- LoadMsgPointers(i+1);
- if(User.Sec_Library)
- sprintf(string," %4d> %dm%7d %9ld %7d %9ld %9ld %d:%dm1\r\n",
- k, i==CN-1?3:6,User.Uploads,User.Bytes_Upload,User.Downloads,User.Bytes_Download,User.Daily_Bytes_Limit-User.Daily_Bytes_Dld,User.Sec_Library,i==CN-1?3:6);
- else
- sprintf(string," %4d> %dm%7d %9ld %7d %9ld %9ld DSBLD\r\n",
- k,i==CN-1?3:6,User.Uploads,User.Bytes_Upload,User.Downloads,User.Bytes_Download,User.Daily_Bytes_Limit-User.Daily_Bytes_Dld);
-
- AEPutStr(string);
- }
- }
- }
- AEPutStr("\r\n");
- LoadMsgPointers(CN);
-
- }
-
- void user_INFO(struct myst *ms);
- void cps_show(struct myst *ms);
-
- int IntFromFile(char *s,char *temp)
- {
- int tempval;
- FILE *fp;
-
- temp[0]='\0';
-
- if(fp=fopen(s,"r")) {
- fgets(temp,50,fp);
- fclose(fp);
- if(temp[0]!='\0') {
- sscanf(temp,"%d",&tempval);
- return(tempval);
- }
- }
- return(0);
- }
-
-
-
- void Clear_Online_Status(void)
- {
- Time_holder=0L;
- }
-
- static int CCom(void)
- {
- int i,i2,stat;
- char str[81],DISPLAY_time[30],string[200],date[20],buff[255];
-
- Time_system=time(NULL);
- sprintf(string,"%s",ctime(&Time_system));
- Convert_CTime_To_Date(string,date,DISPLAY_time);
- sprintf(str,"\tOperator Paged at (%s)\n",DISPLAY_time);
- CallersLog(str);
-
- ConPutStr("\r\nF1 Toggles chat\r\n");
-
- /* show our page sign to user */
- sprintf(buff,"%s\r\nPaging %s (CTRL-C to Abort). .",ctime(&Time_system),Cmds->SysopName);
- AEPutStr(buff);
- for(i=0; i<20; i++) {
- DisplayBeep(NULL);
- AEPutStr(" .");
- for(i2=1; i2<50; i2++) {
- Delay(1L);
- if(Whence_The_Logon>=REMOTE_LOGON) {
- stat=CheckCarrier();
- if(stat==FALSE) return(NO_CARRIER);
- }
- if(CheckInput()) {
- stat=ReadChar(1L);
- if(CHATF==1) {
- AEPutStr("\r\n\r\n");
- return(SUCCESS);
- }
- if(stat==3) {
- AEPutStr("Aborted!\r\n\r\n");
- return(SUCCESS);
- }
- }
- }
- }
-
- AEPutStr("\r\n\r\nThe Sysop has been paged\r\n");
- AEPutStr("You may continue using the system\r\n");
- AEPutStr("until ");
- AEPutStr(Cmds->SysopName);
- AEPutStr(" answers your request.\r\n\r\n");
- StatMessage(1,1," ");
- sprintf(str,"%s",User.Name);
- StatMessage(1,1,str);
-
- return(SUCCESS);
- }
-
- int DoPause(void)
- {
- int ch;
- LineCount=0;
- Pause();
- do {
- ch=Check_Online_Status();
- if(ch<0) return(ch);
- ch=ReadChar(KEYBOARD_TIMEOUT);
- if(ch<0) return(ch);
- } while(ch!=13&&ch!=32);
- AEPutStr("\r\n");
- return(SUCCESS);
-
- }
-
-
- void IntToFile(char *s,int num)
- {
- FILE *f;
-
- if(f=fopen(s,"w")) {
- fprintf(f,"%d\n",num);
- fclose(f);
- }
- }
-
-
- int FirstChar(char *s)
- {
- int loop;
-
- for(loop=0; loop<strlen(s); loop++) {
- if(s[loop]!=' ')
- return(loop);
- }
- return(-1);
- }
-
- int FirstCharValue(char *s)
- {
- int stat;
-
- stat=FirstChar(s);
- if(stat<0) return(stat);
-
- return((int)s[stat]);
- }
-
-
- /* This file did not UnLock(FLock) on every level */
- static int PartUpload_OK(int option)
- {
- struct FileInfoBlock *Fib = NL;
- BPTR FLock;
- int status,ch;
- int rts_stat = SUCCESS; /* Tue Jan 28 10:37:46 1992 */
- char path[100],str[100],ray2[100];
- int cnt = 0;
- char *s;
-
- strcpy(path,Conference_Location);
- strcat(path,"PartUpload/");
- if(MaxDirs==0) return(SUCCESS);
-
-
- if(Whence_The_Logon==LOCAL_LOGON) return(SUCCESS);
-
- if(!(FLock = Lock(path,ACCESS_READ))) {
- sprintf(str,"Tell %s the bbs can't access the %s dir\r\n",Cmds->SysopName,path);
- AEPutStr(str);
- return(SUCCESS); // success = 0
- }
-
- //(RTS) was chip
- if((Fib=(struct FileInfoBlock *)AllocDosObject(DOS_FIB,NULL)) == NULL) {
- UnLock(FLock); //(RTS)
- MyError(0);
- return(0);
- }
-
- if(!(Examine(FLock,Fib))) {
- UnLock(FLock);
- FreeDosObject(DOS_FIB,Fib);
- return(0);
- }
-
- if(Fib->fib_DirEntryType > 0) { /* make sure we locked a directory */
- while (ExNext(FLock,Fib)) { /* my change.. prior to this we had a blank file name */
- if(strlen(Fib->fib_FileName) == 0) { /* check for filename > 0 length */
- goto OUTOH;
- }
-
- cnt = 0;
- s = Fib->fib_FileName;
- while(*s && cnt < 30) { /* check for valid file name */
- if(*s == ' ') { /* check for spaces at beginning of filename */
- goto OUTOH;
- }
- if(*s == '/') {
- goto OUTOH;
- }
- if(!(isascii((int) *s))) {
- goto OUTOH;
- }
- cnt++;
- s++;
- }
-
- /** END ERROR CKING */
- strcpy(str,Fib->fib_FileName);
- strcpy(ray2,str);
- status=GetUN(str); /* remove the @(num at end of file. Return user number */
- if(status==User.Slot_Number) {
- AEPutStr("There are some incompleted uploads of yours\r\n");
- if(!option) AEPutStr("Would you like to leave anyway (Y/N)? ");
-
- FOREVER {
- ch=Check_Online_Status();
- if(ch<0) {
- rts_stat = ch; goto OUTOH;
- }
- if(!option) {
- ch=ReadChar(KEYBOARD_TIMEOUT);
- if(ch==TIMEOUT) {
- rts_stat = NO_CARRIER; goto OUTOH;/* Tue Jan 28 10:33:54 1992 RTS */
- }
- if(Whence_The_Logon>=REMOTE_LOGON) {
- status=CheckCarrier();
- if(status==FALSE) {
- rts_stat = NO_CARRIER; goto OUTOH;
- }
- }
- } else ch = 'N';
-
- if(ch=='N' || ch=='n') {
- if(!option)AEPutStr("No! View them (Y/N)? ");
- else AEPutStr("View them (Y/N)? ");
- PurgeLine();
- FOREVER {
- ch=Check_Online_Status();
- if(ch<0) {
- rts_stat = ch; goto OUTOH;
- }
- ch=ReadChar(KEYBOARD_TIMEOUT);
- if(ch==TIMEOUT) {
- rts_stat = NO_CARRIER; goto OUTOH;
- }
- if(ch=='N' || ch=='n') {
- AEPutStr("No!\r\n");
- rts_stat = ABORT; goto OUTOH;
- }
- if(ch=='Y' || ch=='y') break;
- else continue;
- }
- // AEPutStr("Yes..\r\n");
- rts_stat = FAILURE; goto OUTOH;
- } /* end if ch == 'n' */
- if(ch=='Y' || ch=='y') break;
- else continue;
- } /* end forever */
- }
- //AEPutStr("Yes..\r\n");
- goto OUTOH;
- } /* end while (ExNext(FLock,Fib)) */
- } /* end if(Fib->fib_DirEntryType > 0) */
- OUTOH:
- if(FLock) UnLock(FLock);
- if(Fib) FreeDosObject(DOS_FIB,Fib);
- return(rts_stat);
- }
-
- static int DateNewer(char *s1,char *s2)
- {
- int mdt,ddt,ydt,month,day,year,tv;
- char cs1[20],cs2[20];
-
- tv=0;
-
- strcpy(cs1,s1);
- strcpy(cs2,s2);
-
- cs1[2]=' '; cs2[2]=' '; cs1[5]=' '; cs2[5]=' ';
-
- sscanf(cs1,"%d %d %d",&mdt,&ddt,&ydt);
- sscanf(cs2,"%d %d %d",&month,&day,&year);
-
- if(ydt>year) tv = 1;
- else {
- if(ydt==year) {
- if(mdt>month)
- tv = 1;
- else {
- if(mdt==month) {
- if(ddt>day) tv = 1;
- }
- }
- }
- }
- return(tv);
- }
-
- void DisplayNodeCLog(void);
-
- static void EditDirFile(void)
- {
- long stat,which;
-
- if(MaxDirs==0) {
- AEPutStr("\r\n");
- MyError(5);
- return;
- }
-
- stat=CommandSplit();
- if(stat>1)
- strcpy(GSTR1,Command[1]);
- else
- GSTR1[0]='\0';
- do{
- if(GSTR1[0]=='\0') {
- sprintf(GSTR1,"\r\nDirectory to Edit[1-%ld]? ",MaxDirs);
- AEPutStr(GSTR1);
- stat=LineInput("",GSTR1,5,KEYBOARD_TIMEOUT);
- if(stat<0||GSTR1[0]=='\0') {
- AEPutStr("\r\n");
- return;
- }
- }
- sscanf(GSTR1,"%ld",&which);
- GSTR1[0]='\0';
- if(which<1||which>MaxDirs)
- AEPutStr("\r\nNo such directory!\r\n");
- } while(which<1||which>MaxDirs);
-
- sprintf(GSTR1,"%sDir%ld",Conference_Location,which);
- EditEmacs(GSTR1);
- AEPutStr("\r\n");
- }
-
- static void EditAnyFile(void)
- {
- long stat;
-
- stat=CommandSplit();
- if(stat>1)
- strcpy(GSTR1,Command[1]);
- else {
- AEPutStr("\r\nFullPath/Filename to Editor? ");
- stat=LineInput("",GSTR1,250,KEYBOARD_TIMEOUT);
- if(stat<0||GSTR1[0]=='\0') {
- AEPutStr("\r\n");
- return;
- }
- }
- if(FindAssign(GSTR1))
- {
- AEPutStr("\r\nDevice not Mounted.\r\n");
- AEPutStr("\r\n");
- return;
- }
- EditEmacs(GSTR1);
- AEPutStr("\r\n");
- }
-
- static void AlterFlags(void)
- {
- int stat;
-
- AEPutStr("\r\n");
- if(strlen(MAINMENU_Li)>2) {
- stat=FlagFiles(MAINMENU_Li+2);
- if(stat<0) return;
- while(stat) stat=FlagFiles(NULL);
- } else {
- do {
- stat=FlagFiles(NULL);
- if(stat<0) return;
- } while(stat);
- }
- AEPutStr("\r\n");
- }
-
- int Download_A_File(char *str);
-
- static int BeginDLF(void) /* begin downloading */
- {
- int stat;
- char *str;
-
- stat=FAILURE;
-
- if(str=(UBYTE *)AllocMem(3072,MEMF_ANY|MEMF_CLEAR)) {
- stat=Download_A_File(str);
- FreeMem(str,3072);
- } else MyError(3);
- return(stat);
- }
-
-
- static int CheckFlagged(void)
- {
- int stat;
-
- if(strlen(flaglist)) {
- AEPutStr("You have flagged files still not downloaded.\r\nDo you leave without them? ");
- stat=YesNo(2);
- return(stat);
- }
- return(1);
- }
-
-
- /*******************************************************MENU ************/
- int SearchString(void);
- int MyNewFiles(void);
- extern int SetEnvStat(int Code);
-
-
- void check_nodes(void);
-
- int Menu(void)
- {
- int command_accepted, ch, mystat;
- char string[133],c[100],str[100],tc[100];
- long temp;
- int i = 0;
- Clear_Online_Status();
- Time_menu_entry=time(NULL);
- Time_system=Time_menu_entry;
-
-
- sprintf(c,"%s",ctime(&User.Time_Last_On));
- Convert_CTime_To_Date(c,str,string);
- sprintf(c,"%s",ctime(&Time_menu_entry));
- Convert_CTime_To_Date(c,tc,string);
-
- mystat=DateNewer(tc,str); /* is it a newer date ? */
- Time_limit=User.Time_Limit;
- if(mystat) {
-
- if(Cmds->AcLvl[LVL_KEEP_UPLOAD_CREDIT]>1) {
- if(User.Time_Total-Time_limit>0)
- Time_limit+=(User.Time_Total-Time_limit);
- }
- User.Time_Total=Time_limit;
- User.Time_Used=0L;
- User.Daily_Bytes_Dld=0L;
- BytesADL=User.Daily_Bytes_Limit;
- } else {
- Time_limit=User.Time_Total-User.Time_Used;
- BytesADL=User.Daily_Bytes_Limit-User.Daily_Bytes_Dld;
- }
-
- if(Time_limit<=0L) { /*-- User Exceeded his time limit for today --*/
- sprintf(GSTR1,"%sLogon24hrs",Sopt->NodeScreen);
- if(!(mystat=ChecktoDisplay(GSTR1,GSTR2,0,0))) {
- UnAvailNotice(GSTR2,GSTR1);
- }
- return(NO_CARRIER); /* goodbye */
- }
-
- LogON=1;
-
-
- /*--- Show BBS:Bull.txt ----*/
- ch=0;
- sprintf(GSTR1,"%sBULL",Cmds->BBSLoc);
- if(ChecktoDisplay(GSTR1,GSTR2,1,1)) {
- mystat=DoPause();
- if(mystat<0) { return(mystat); }
- }
-
- if(BatchError<0) return(BatchError);
-
- /* really need to resave account with new baud rate */
-
- // User_keys.baud_rate = Online_Baud;
-
- /* show the New user the Rules */
- if(my_struct.newuserfile && (GET_BIT(ACS_UPLOAD)) && (User_keys.Userflags & USER_NEWMSG) ) {
- ch=ChecktoDisplay(my_struct.newuserfile,GSTR2,0,1);
- User_keys.Userflags ^= USER_NEWMSG; /* reset bit */
- //JOE 23-Jun modified code to pause only if the newuserfile exists
-
- }
-
-
-
- if(ch)
- {
- mystat=DoPause();
- if(mystat<0) return(mystat);
- }
-
- //JOE 23-Jun modified
- sprintf(GSTR1,"%sBULL",Sopt->NodeScreen);
- ch=ChecktoDisplay(GSTR1,GSTR2,1,1);
-
- //JOE 23-Jun modified code to pause only if the bulletin exists
-
- if(ch)
- {
- mystat=DoPause();
- if(mystat<0) return(mystat);
- }
- ClearMsgPointers();
- MasterLoadPointers();
-
- GetProtocol();
-
- SetEnvStat(ENV_SCANNING);
-
- //-- if(User.Sec_Status > my_struct.access_scan_level) { /* dont scan if user < 11 */
- /*----------------- Search Conferences for mail ------------------*/
- AEPutStr("\r\nScanning conferences for mail...\r\n\r\n");
- //(JOE)
- MCIViewSafe=FALSE;
- for(ch=1; ch<Boards_Are_Active+1; ch++) {
- mystat=Join_Conference(ch);
-
- if(mystat==FAILURE) break;
- if(mystat==NO_CARRIER||mystat==TIMEOUT) return(mystat);
- }
- MCIViewSafe=TRUE;
- //-- }
-
- if(GET_BIT(ACS_UPLOAD)) {
- //AEPutStr("\r\n --Checking for PartUploads\r\n");
- for(CN=1;CN<Boards_Are_Active+1;CN++)
- {
- GetConfName(Conference_Name,Conference_Location,CN-1);
- strcpy(GSTR1,Conference_Location);
- if(MaxDirs=IntFromConf(CN-1,"NDIRS"))
- {
- if(IsValidConf(CN-1))
- {
-
- command_accepted=PartUpload_OK(1);
- if(command_accepted==FAILURE) {
- strcpy(MAINMENU_Li,"URG");
- SetEnvStat(ENV_UPLOADING);
- if(!(GET_BIT(ACS_UPLOAD)))
- command_accepted=NOTALLOWED;
- else
- command_accepted=Upload_a_File(0);
- }
- else
- if(command_accepted==ABORT)
- {
- AEPutStr("\r\n");
- }
-
- }
- }
- }
- AEPutStr("\r\n");
- mystat=DoPause();
- if(mystat<0) return(mystat);
- }
-
- CN=User.ConfRJoin;
- if(!IsValidConf(CN-1)) CN=1;
- if(CN==0||CN>Boards_Are_Active) CN=1;
- GetConfName(Conference_Name,Conference_Location,CN-1);
- LoadMsgPointers(CN);
- FreeDownloads=1;
- strcpy(str,Conference_Location);
- if(MaxDirs=IntFromConf(CN-1,"NDIRS")) {
- if(IsFromConf(CN-1,"FREEDOWNLOADS")) {
- FreeDownloads=0;
- } else FreeDownloads=1;
- }
- if(!GetFromConf(CN-1,"CONF_NETID",NetConf)) strcpy(NetConf,"");
-
- if(!GetFromConf(CN-1,"SCREENS",Screen_Location))
- strcpy(Screen_Location,Conference_Location);
- /* Display that conferences Bulletin to the user */
- strcpy(GSTR1,Screen_Location);
- strcat(GSTR1,"BULL");
- if(ch=ChecktoDisplay(GSTR1,GSTR2,1,1)) {
- ch=DoPause();
- if(ch<0) return(ch);
- }
- if(BatchError<0) return(BatchError);
-
- GetMailStatFile();
- AEPutStr("\r\n");
-
- if(CN==User.ConfRJoin) ScanHoldDesc();
- UserStatus();
-
- sprintf(string,"Conference %d: %s Auto-ReJoined",RelConf(CN),Conference_Name);
- sprintf(c,"\t%s\n",string);
- CallersLog(c);
- AEPutStr(string);
- AEPutStr("\r\n");
- if(strlen(NetConf)>3)
- {
- if(NetConf[0]=='H' || NetConf[0]=='h')
- sprintf(string,"NetNode: %s , Host to NetConf: %s\r\n",Sopt->BBSConfig,&NetConf[3]);
- else
- sprintf(string,"NetNode: %s , Sub to NetConf: %s\r\n",Sopt->BBSConfig,&NetConf[3]);
- AEPutStr(string);
- }
- AEPutStr("\r\n\r\n");
-
- if(Last_Msg_Read_Conf>MailStat.HighMsgNum)
- Last_Msg_Read_Conf=0;
-
- if(Last_New_Read_Conf>MailStat.HighMsgNum)
- Last_New_Read_Conf=0;
- if(MailStat.LowestKey>1)
- {
- sprintf(string,"Messages range from ( %ld - %ld )\r\n",
- MailStat.LowestKey,MailStat.HighMsgNum-1);
- }
- else
- sprintf(string,"\r\nTotal messages : %ld\r\n",MailStat.HighMsgNum-1);
-
- AEPutStr(string);
- temp=Last_New_Read_Conf-1;
- if(temp<0) temp=1;
-
- sprintf(string,"\r\nLast message auto scanned: %ld\r\n",temp);
- AEPutStr(string);
-
- sprintf(string,"Last message read : %ld\r\n\r\n",Last_Msg_Read_Conf);
- AEPutStr(string);
-
-
- DisplaySysopULStats();
-
- MMcont:
- SetEnvStat(ENV_IDLE);
- no_scrn_clr = FALSE;
- RelNum=RelConf(CN); /* dont do screen clear code */
-
-
- for(;;) {
- MAINMENU:
- ChatFlag=0;
- SetEnvStat(ENV_IDLE); /* 11w */
-
- if(Check_Online_Status()<0) return(NO_CARRIER);
- if(User.Expert!='X'&&MAINMENU_Li[0]!='?') {
- mystat=DoPause();
- if(mystat<0) return(mystat);
- DisMenu();
- }
-
- sprintf(string,"%s [%d:%s] Menu (%ld mins. left): ",Cmds->BBSName,RelNum,Conference_Name,Time_limit/60L);
- AEPutStr(string);
-
- while(1) {
- StatPrintUser(&User);
- mystat=LineInput("",MAINMENU_Li,200,KEYBOARD_TIMEOUT);
- if(mystat<0) return(NO_CARRIER);
- if(strlen(MAINMENU_Li)==0) {
- AEPutStr("\r\n");
- break; /* goto MAINMENU; */
- }
-
- if(MAINMENU_Li[0]==' ')
- {
- AEPutStr("\r\n");
- break;
- }
-
- mystat=MenuCommand(MAINMENU_Li);
- if(mystat!=SUCCESS) return(mystat); else break;
- }
- }
- return(SUCCESS);
- }
- int MenuCommand(char str1[])
- {
- int input, command_accepted, mystat;
- char string[133]; int ch;
- strcpy(MAINMENU_Li,str1);
- SetEnvStat(ENV_IDLE); /* 11w */
-
- if(Check_Online_Status()<0) return(NO_CARRIER);
-
- StatPrintUser(&User);
- if(strlen(MAINMENU_Li)==2&&(!strnicmp(MAINMENU_Li,"rz",2)))
- {
- SetEnvStat(ENV_UPLOADING); /* 11w */
- command_accepted = Upload_a_File(1);
- if(command_accepted == GOODBYE) {
- Goodbye();
- return(STANDARD_LOGOFF);
- }
- if(command_accepted == NO_CARRIER) {
- return(NO_CARRIER);
- }
- command_accepted=NOTALLOWED;
- return(SUCCESS);
- }
-
- while(1)
- {
- sprintf(string,"%sCommands/conf%dCmd/",Cmds->BBSLoc,CN);
- command_accepted=CustomCommand(string,MAINMENU_Li,0);
- if(command_accepted==1) return(SUCCESS); /* 11w */
- if(command_accepted!=3) break;
- }
-
- while(1)
- {
- sprintf(string,"%sCommands/BBSCmd/",Cmds->BBSLoc);
- command_accepted=CustomCommand(string,MAINMENU_Li,0);
- if(command_accepted==1) return(SUCCESS);
- if(command_accepted!=3) break;
- }
-
- FORCENTRY:
- input=FirstCharValue(MAINMENU_Li);
-
- if(Check_Online_Status()<0) return(NO_CARRIER);
-
- switch(toupper(input)) {
- case '1':
- SetEnvStat(ENV_SYSOP); /* 11w */
- if(!GET_BIT(ACS_ACCOUNT_EDITING)) {
- command_accepted=NOTALLOWED;
- break;
- }
- CallersLog("\tAccount editing.\n");
- Edit_Accounts();
- command_accepted=SUCCESS;
- break;
- case '2':
- SetEnvStat(ENV_SYSOP);
- if(!GET_BIT(ACS_NODE_LIST)) {
- command_accepted=NOTALLOWED;
- break;
- }
- DisplayNodeCLog();
- command_accepted=SUCCESS;
- break;
- case '3':
- SetEnvStat(ENV_EMACS);
- if(!(GET_BIT(ACS_EDIT_DIRS))) {
- command_accepted=NOTALLOWED;
- break;
- }
- EditDirFile();
- command_accepted=SUCCESS;
- break;
- case '4':
- SetEnvStat(ENV_EMACS);
- if(!(GET_BIT(ACS_EDIT_ANY))) {
- command_accepted=NOTALLOWED;
- break;
- }
- EditAnyFile();
- command_accepted=SUCCESS;
- break;
- case '5':
- SetEnvStat(ENV_SYSOP);
- if(!(GET_BIT(ACS_SYSOP_COMMANDS))) {
- command_accepted=NOTALLOWED;
- break;
- }
- MyDirAnyWhere();
- command_accepted=SUCCESS;
- break;
- case 'A':
- /* user must have minimum access to use this command */
- if(User.Sec_Status <= Cmds->PSAcLvl[0]) {
- command_accepted=NOTALLOWED;
- break;
- }
- if(!GET_BIT(ACS_DOWNLOAD)) { command_accepted=NOTALLOWED; break;}
- if(MAINMENU_Li[1]>' ') { command_accepted=SUCCESS; break; }
- SetEnvStat(ENV_FILES); /* 11w */
- AlterFlags();
- command_accepted=SUCCESS;
- break;
- case 'B':
- if(!(GET_BIT(ACS_BULLETINS))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SetEnvStat(ENV_BULLETINS); /* 11w */
- command_accepted=Bulletins();
- break;
- case 'C':
- SetEnvStat(ENV_MAIL); /* 11w */
- if(!(GET_BIT(ACS_COMMENT_TO_SYSOP))) {
- command_accepted=NOTALLOWED;
- break;
- }
- //(JOE) MCI security added
- MCIViewSafe=FALSE;
- command_accepted=CommentToSYSOP();
- MCIViewSafe=TRUE;
- break;
- case 'D':
- if(!(GET_BIT(ACS_DOWNLOAD))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SetEnvStat(ENV_DOWNLOADING); /* 11w */
- command_accepted=BeginDLF();
- rfinal[0]='\0';
- break;
- case 'E':
- SetEnvStat(ENV_MAIL); /* 11w */
- if(!(GET_BIT(ACS_ENTER_MESSAGE))) {
- command_accepted=NOTALLOWED;
- break;
- }
- //(JOE) MCI added for security
- command_accepted=CallMsgFuncs(2,0); //EnterMSG();
- break;
- case 'F':
- if(MAINMENU_Li[1]=='s' || MAINMENU_Li[1]=='S')
- {
- if(!(GET_BIT(ACS_CONFERENCE_ACCOUNTING))) {
- command_accepted=NOTALLOWED;
- break;
- }
- FileStatus(0); command_accepted=0;
- break;
- }
- if(!(GET_BIT(ACS_FILE_LISTINGS))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SetEnvStat(ENV_FILES);
- command_accepted=DisplayFileList();
- no_scrn_clr = TRUE;
- break;
- case 'G':
- SetEnvStat(ENV_LOGOFF);
- AEPutStr("\r\n");
-
- if(GET_BIT(ACS_UPLOAD)) {
- command_accepted=PartUpload_OK(0);
- if(command_accepted==FAILURE) { /* NO leave yet file un finished */
- strcpy(MAINMENU_Li,"URG"); /* loop again */
- goto FORCENTRY;
- }
- if(command_accepted==ABORT) {
- AEPutStr("\r\n");
- break; /* goto MAINMENU */
- }
- }
- mystat=CheckFlagged();
- if(!mystat) {
- AEPutStr("\r\n");
- break;
- }
- Goodbye();
- return(STANDARD_LOGOFF); /* goodbye */
- break;
- case 'H':
- /* no chat unless validated */
- command_accepted=HELP();
- break;
- case '^':
- sprintf(GSTR1,"%shelp/%s",Cmds->BBSLoc,&MAINMENU_Li[1]);
- while(1)
- {
- if(ch=ChecktoDisplay(GSTR1,GSTR2,0,1)) {
- ch=DoPause();
- if(ch<0) return(ch);
- AEPutStr("\r\n");
- break;
- }
- else if(MAINMENU_Li[1]!='\0') { MAINMENU_Li[strlen(MAINMENU_Li)-1]='\0';
- sprintf(GSTR1,"%shelp/%s",Cmds->BBSLoc,&MAINMENU_Li[1]);
- continue;
- }
- break;
- }
- command_accepted=SUCCESS;
- break;
- case '>':
- sprintf(MAINMENU_Li,"J %d",RelConf(CN)+1);
- case '<':
- if(!(GET_BIT(ACS_JOIN_CONFERENCE)))
- {
- command_accepted=NOTALLOWED;
- break;
- }
- SaveMsgPointers(CN);
- if(MAINMENU_Li[0]=='<')
- {
- sprintf(MAINMENU_Li,"J %d",RelConf(CN)-1);
- }
-
- SetEnvStat(ENV_JOIN);
- command_accepted=Join_Conference(0);
- AEPutStr("\r\n");
- break;
- case 'J': /* Join Conference */
- /* no chat unless validated */
- if(!(GET_BIT(ACS_JOIN_CONFERENCE))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SaveMsgPointers(CN);
-
- SetEnvStat(ENV_JOIN); /* 11w */
- command_accepted=Join_Conference(0);
- AEPutStr("\r\n");
- break;
-
- case 'M':
- command_accepted=SUCCESS;
- if(AnsiColor) {
- AnsiColor=0;
- AEPutStr("\r\nAnsi Color off\r\n\r\n");
- } else {
- AnsiColor=1;
- AEPutStr("\r\nAnsi Color On\r\n\r\n");
- }
- break;
- case 'N':
- if(!(GET_BIT(ACS_NEW_FILES_SINCE))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SetEnvStat(ENV_FILES); /* 11w */
- command_accepted=MyNewFiles();
- no_scrn_clr = TRUE;
- break;
- case 'O':
- if(PagesAllowed==0)
- {
- SetEnvStat(ENV_MAIL); /* 11w */
- if(!(GET_BIT(ACS_COMMENT_TO_SYSOP))) {
- command_accepted=NOTALLOWED;
- break;
- }
- MCIViewSafe=FALSE;
- command_accepted=CommentToSYSOP();
- MCIViewSafe=TRUE;
- break;
- }
- if(PagesAllowed!=-1) PagesAllowed -=1;
- /* no chat unless validated */
- if(!(GET_BIT(ACS_PAGE_SYSOP))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SetEnvStat(ENV_REQ_CHAT); /* 11w */
- PagedFlag=1;
- command_accepted=SUCCESS;
- if(SySChat==0&& !(GET_BIT(ACS_OVERRIDE_CHAT))) {
- sprintf(string,"\r\nSorry, %s, is not around right now\r\n",Cmds->SysopName);
- AEPutStr(string);
- AEPutStr("You can use 'C' to leave a comment.\r\n\r\n");
- } else
- command_accepted=CCom(); /* chat */
-
- break;
- case 'Q': if(GET_BIT(ACS_QUIET_NODE)) {Server(SV_QUIETNODE);} command_accepted=0; break;
- case 'R':
- if(MAINMENU_Li[1]=='L' || MAINMENU_Li[1]=='l')
- {
- if(GET_BIT(ACS_RELOGON))
- {
- SetEnvStat(ENV_LOGOFF);
- AEPutStr("\r\n");
- templogon=Whence_The_Logon; if(templogon==SYSOP_LOGON) templogon=LOCAL_LOGON;
- relogon=1;
- if(GET_BIT(ACS_UPLOAD)) {
- command_accepted=PartUpload_OK(0);
- if(command_accepted==FAILURE) { /* NO leave yet file un finished */
- strcpy(MAINMENU_Li,"URG"); /* loop again */
- goto FORCENTRY;
- }
- if(command_accepted==ABORT) {
- AEPutStr("\r\n");
- break; /* goto MAINMENU */
- }
- }
- mystat=CheckFlagged();
- if(!mystat) {
- AEPutStr("\r\n");
- break;
- }
- Goodbye();
- return(STANDARD_LOGOFF); /* goodbye */
- break;
- }
- }
- SetEnvStat(ENV_MAIL);
- if(!(GET_BIT(ACS_READ_MSG))) {
- command_accepted=NOTALLOWED;
- break;
- }
- GetMailStatFile();
- command_accepted=CallMsgFuncs(1,0);
- break;
- case 'S':
- SetEnvStat(ENV_STATS);
- if(!(GET_BIT(ACS_DISPLAY_USER_STATS))) {
- command_accepted=NOTALLOWED;
- break;
- }
- UserStatus();
- command_accepted=SUCCESS;
- /*AEPutStr("\r\n");
- for(i=0;i<80;i++)
- {
- if(GET_BIT(i)) AEPutStr("X"); else AEPutStr("_");
- }
- AEPutStr("\r\n");*/
- break;
- case 'T':
- AEPutStr("\r\nIt is ");
- Time_system=time(NULL);
- sprintf(string,"%s\r\n\r",ctime(&Time_system));
- AEPutStr(string);
-
- command_accepted=SUCCESS;
- break;
- case 'U':
- /* no uploading unless validated */
- if(!(GET_BIT(ACS_UPLOAD))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SetEnvStat(ENV_UPLOADING); /* 11w */
- command_accepted=Upload_a_File(0);
- if(command_accepted == NO_CARRIER) {
- return(NO_CARRIER);
- }
- break;
- case 'V':
- SetEnvStat(ENV_VIEWING);
- if(!(GET_BIT(ACS_VIEW_A_FILE))) {
- command_accepted=NOTALLOWED;
- break;
- }
- command_accepted=View_A_File();
- break;
- case 'W':
- /* no account editing unless validated */
-
- if(!(GET_BIT(ACS_EDIT_USER_INFO)))
- {
- command_accepted=NOTALLOWED;
- break;
- }
-
- SetEnvStat(ENV_STATS);
- command_accepted=UserAccountEdit();
-
- break;
-
- case 'X':
- /* no menu disable if not validated */
- if(User.Expert=='X') {
- AEPutStr("\r\nExpert mode off\r\n\r\n");
- User.Expert='N';
- } else {
- AEPutStr("\r\nExpert mode on\r\n\r\n");
- User.Expert='X';
- }
- command_accepted=SUCCESS;
- break;
- case 'Z':
- /* no message zooming unless validated */
- if((MAINMENU_Li[1]=='o'||MAINMENU_Li[1]=='O')) {
- if(GET_BIT(ACS_ZOOM_MAIL)) {
- command_accepted=JEZoom(); // chgd from Zoom 11w
- break;
- }
- command_accepted=NOTALLOWED;
- break;
- }
- if(!(GET_BIT(ACS_ZIPPY_TEXT_SEARCH))) {
- command_accepted=NOTALLOWED;
- break;
- }
- SetEnvStat(ENV_FILES);
- command_accepted=SearchString();
- break;
- case '?':
- DisMenu();
- command_accepted=SUCCESS;
- break;
- case '\000': /* FN-KEY HIT */
- command_accepted=SUCCESS;
- AEPutStr("\r\n");
- break;
- default:
- AEPutStr("\r\nNo such command!! Use '?' for command list.\r\n\r\n");
- command_accepted=FAILURE;
- break;
- }
- if(command_accepted==TIMEOUT) return(SLEEP_LOGOFF);
- if(command_accepted==NO_CARRIER) return(NO_CARRIER);
- if(command_accepted==GOODBYE) {
- Goodbye();
- return(STANDARD_LOGOFF);
- }
- if(command_accepted==NOTALLOWED)
- AEPutStr("\r\nCommand requires higher access.\r\n\r\n");
- else AEPutStr("\r\n");
-
- return(SUCCESS);
- }
-
- void DisplaySysopULStats(void)
- {
- int i,num,num2,t;
- char str[100],str2[100];
- FILE *fp;
-
- t=0;
- if(!GET_BIT(ACS_ULSTATS)) return;
-
- for(i=0; i<Boards_Are_Active; i++) {
- num=0;
- num2=0;
- sprintf(str,"%sSysopStats/NumULs_%d",Cmds->BBSLoc,i+1);
- if((fp = fopen(str,"r"))) {
- fgets(str2,20,fp);
- fclose(fp);
- if(User.Slot_Number==1)DeleteFile(str);
- sscanf(str2,"%d",&num);
- }
-
- strcat(str,"HOLD");
- if((fp = fopen(str,"r"))) {
- fgets(str2,20,fp);
- fclose(fp);
- if(User.Slot_Number==1)DeleteFile(str);
- sscanf(str2,"%d",&num2);
- }
- if(num!=0||num2!=0) {
- t=1;
- GetConfName(str,str2,i);
- sprintf(str2,"%s has %d new uploads, %d upload, %d hold\r\n",str,(num+num2),num,num2);
- AEPutStr(str2);
- }
- }
- GetConfName(str,str2,CN-1);
- if(t) AEPutStr("\r\n");
- }
-
-
- int GetMailStatFile(void)
- {
- BPTR fd;
- LONG stat;
- char string[100];
-
- strcpy(string,MsgBase_Location);
- strcat(string,"MailStats");
- fd=Open(string,MODE_OLDFILE);
-
- if(fd==NULL) { /* if The mailstat file doesnt exist creat one */
- fd=Open(string,MODE_NEWFILE);
- if(fd==NULL) {
- MyError(2); // MyError(2);
- return(FAILURE);
- }
-
- MailStat.LowestNotDel=0;
- MailStat.LowestKey=1;
- MailStat.HighMsgNum=1;
- stat=Write(fd,(char *)&MailStat,sizeof(struct MailStat));
- } else
- stat=Read(fd,(char *)&MailStat,sizeof(struct MailStat));
-
- if(stat!=sizeof(struct MailStat)){
- Close(fd); MyError(2); return(FAILURE);
- }
-
- Close(fd);
- return(SUCCESS);
- }
-
- int AddFlagtoList(char *);
- static int mcount;
-
-
- static int JEZoom(void)
- {
- FILE *fi,*fi1,*fo;
- struct MailHeader MH;
- int mystat;
- long Low, Num=0L, TimeVar;
- char FileName[100], ZoomName[80];
- char date[100], Temp[200], string[100];
- int cnt = 0;
- SetEnvStat(ENV_ZOOM);
-
- cnt = 0;
- // if nozoom set & user < co-sysop level skip conf
- AEPutStr("\r\n");
- sprintf(Temp,"\r\n High Msg: %ld",MailStat.HighMsgNum-1);
- AEPutStr(Temp);
- sprintf(Temp,"\r\n Low Msg: %ld\r\n",MailStat.LowestNotDel);
- AEPutStr(Temp);
- sprintf(Temp," Last Read: %ld\r\n",Last_Msg_Read_Conf);
- AEPutStr(Temp);
- AEPutStr("\r\n");
- AEPutStr("Zoom From >: ");
- sprintf(Temp,"%ld",Last_Msg_Read_Conf); Low=Last_Msg_Read_Conf;
- mystat=LineInput(Temp,Temp,10,KEYBOARD_TIMEOUT);
-
- if(mystat<0) return(mystat);
- AEPutStr("\r\n");
- if(atol(Temp)>=MailStat.LowestNotDel && atol(Temp)<=MailStat.HighMsgNum && Temp[0]!='\0') Low=atol(Temp);
- sprintf(Temp,"Zooming Mail from message %ld\r\n\r\n",Low);
- AEPutStr(Temp);
-
- sprintf(Temp,"%sHeaderFile",MsgBase_Location);
-
- fi=fopen(Temp,"rb");
- if(!fi) {
- AEPutStr("Message Base does not exist\r\n"); return(0);
- }
- sprintf(ZoomName,"%sZoom/C%dNd%dMail@%d",Cmds->BBSLoc,RelNum,Cmds->AcLvl[LVL_NODE_NUMBER],User.Slot_Number);
- fo=fopen(ZoomName,"a");
- if(!fo) { fclose(fi); return(0); }
- fseek(fi,(LONG)sizeof(struct MailHeader)*(LONG)(Low-MailStat.LowestKey),0);
- while(fread((APTR)&MH,sizeof(struct MailHeader),1,fi)!=NULL) {
- if(!CheckCarrier() && Whence_The_Logon==REMOTE_LOGON)
- {
- fclose(fo);
- fclose(fi);
- return(NO_CARRIER);
- }
- CheckDoorMsg(0);
- if(!strcmp(MH.ToName,User.Name) || !strcmp(MH.FromName,User.Name) || \
- MH.Status[0]=='P' || GET_BIT(ACS_SYSOP_READ)) {
- if((!MH.Recv || GET_BIT(ACS_SYSOP_READ)) \
- && MH.Status[0]!='D') {
- TimeVar=(long)MH.MsgDate;
- sprintf(date,"%s",ctime(&TimeVar));
- date[strlen(date)-1]='\0';
- fprintf(fo,"\nDate : %-30s Number: %ld\n",date,MH.MsgNumb);
- strcpy(date,MH.ToName);
- strlwr(date);
- TimeVar=(long)strncmp(date,"eall",4);
- if(TimeVar==0) {
- strcpy(date,User.Name);
- strcat(date," (ALL)");
- } else {
- strcpy(date,MH.ToName);
- }
- fprintf(fo,"To : %-30s ",date);
-
- if(MH.Recv!=0) {
- TimeVar=MH.Recv;
- sprintf(date,"%s",ctime(&TimeVar));
- date[strlen(date)-1]='\0';
- fprintf(fo,"Recv'd: %s\n",date);
- } else {
- fprintf(fo,"Recv'd: ");
- if(StringCompare(MH.ToName,"ALL")==SUCCESS) {
- fprintf(fo,"N/A\n");
- } else {
- fprintf(fo,"No\n");
- }
- }
-
- if(MH.Status[0]=='P') {
- strcpy(string,"Public Message");
- } else {
- strcpy(string,"Receiver Only");
- }
-
- fprintf(fo,"From : %-30s Status: %s\n",MH.FromName,string);
- fprintf(fo,"Subject: %s\n",MH.Subject);
- fprintf(fo,"Conf : [%d] %s\n\n",RelNum,Conference_Name);
- sprintf(FileName,"%s%d",MsgBase_Location,MH.MsgNumb);
- if(fi1=fopen(FileName,"r")) {
- while(fgets(FileName,80,fi1)!=NULL)
- fprintf(fo,"%s",FileName);
-
- fprintf(fo,"\n==========================================================================\n\n");
- fclose(fi1);
- AEPutStr("."); Num +=1L;
- }
- }
- }
- Low +=1L;
- } /* while fread */
- fclose(fi);
- fclose(fo);
-
- Last_Msg_Read_Conf=Low;
-
- if(Num>0L) {
- SetComment(ZoomName,"F");
- AEPutStr("\r\n");
- if(Whence_The_Logon!=SYSOP_LOGON && Whence_The_Logon!=LOCAL_LOGON) {
- DTBT=0;
- TBT=0;
- TTTM=NULL;
- TTEFF=NULL;
- TTCPS=NULL;
- AEPutStr("Prepare for ZoomMail Zmodem Download:\r\n");
- mystat=DoPause();
- if(mystat<0) { DeleteFile(ZoomName);return(mystat); }
- SetEnvStat(ENV_DOWNLOADING);
- Zmodem_Send(ZoomName);
- DeleteFile(ZoomName);
- }
-
- }
- else
- AEPutStr("\r\nNo messages to Zoom\r\n");
- return(0);
- }
-
- int IsFromIcon(char *s,char *c)
- {
- struct DiskObject *dobj;
- char temp[100];
- char **oldtooltypes;
- strcpy(temp,s);
- if(temp[strlen(temp)-1]=='/') temp[strlen(temp)-1]='\0';
- dobj=GetDiskObject(temp);
- if(dobj==NULL) return(0);
- oldtooltypes=dobj->do_ToolTypes;
- if(FindToolType(oldtooltypes,c)) { FreeDiskObject(dobj); return(1); }
- FreeDiskObject(dobj);
- return(0);
- }
-
- int GetFromIconStr(char *s,char *c,char *buf)
- {
- struct DiskObject *dobj;
- char temp[100];
- char **oldtooltypes;
- char *t;
- strcpy(temp,s);
- if(temp[strlen(temp)-1]=='/') temp[strlen(temp)-1]='\0';
- dobj=GetDiskObject(temp);
- if(dobj==NULL) return(0);
- oldtooltypes=dobj->do_ToolTypes;
- if(t=FindToolType(oldtooltypes,c)) { strcpy(buf,t); FreeDiskObject(dobj); return(1); }
- FreeDiskObject(dobj);
- return(0);
- }
- int IntFromIcon(char *s,char *c)
- {
- struct DiskObject *dobj;
- char temp[100];
- char **oldtooltypes;
- char *t;
- int num;
- strcpy(temp,s);
- if(temp[strlen(temp)-1]=='/') temp[strlen(temp)-1]='\0';
- dobj=GetDiskObject(temp);
- if(dobj==NULL) return(0);
- oldtooltypes=dobj->do_ToolTypes;
- if(t=FindToolType(oldtooltypes,c))
- {
- strcpy(temp,t); num=atoi(t);FreeDiskObject(dobj); return(num); }
- FreeDiskObject(dobj);
- return(0);
- }
-
- int IsFromConf(int Conf,char *c);
- int GetFromConf(int Conf,char *c,char *buf);
- int IntFromConf(int Conf,char *c);
-
- //#define CurConf(x) dobj=(struct DiskObject *)*(MemConf+((ULONG)x))
- #define CurConf(x) dobj=(struct DiskObject *)MemConf[x]
- int IsFromConf(int Conf,char *c)
- {
- struct DiskObject *dobj;
- char **oldtooltypes;
- CurConf(Conf);
- oldtooltypes=dobj->do_ToolTypes;
- if(FindToolType(oldtooltypes,c)) return(1);
- return(0);
- }
-
- int GetFromConf(int Conf,char *c,char *buf)
- {
- struct DiskObject *dobj;
- char **oldtooltypes;
- char *t;
- CurConf(Conf);
- oldtooltypes=dobj->do_ToolTypes;
- if(t=FindToolType(oldtooltypes,c)) { strcpy(buf,t); return(1); }
- return(0);
- }
- int IntFromConf(int Conf,char *c)
- {
- struct DiskObject *dobj;
- char **oldtooltypes;
- char *t;
- int num;
- CurConf(Conf);
- oldtooltypes=dobj->do_ToolTypes;
- if(t=FindToolType(oldtooltypes,c))
- {
- num=atoi(t);return(num); }
- return(0);
- }
-
-